package model;

import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

@Entity
public class Produto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable=false)
    private boolean ativo;
    @Column(nullable=false)
    private String nome;
    @Column(nullable=true)
    private String descricao;
    
    @JoinColumn(name = "categoria_id", referencedColumnName = "id")
    @ManyToOne
    private Categoria categoria;
    
    @JoinColumn(name = "preco_id", referencedColumnName = "id")
    @OneToOne
    private Preco preco;
    
    @JoinColumn(name = "fornecedor_id", referencedColumnName = "id")
    @ManyToOne
    private Fornecedor fornecedor;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy="produto")
    private List<Prod_ped> produto_pedidos;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    public Preco getPreco() {
        return preco;
    }

    public void setPreco(Preco preco) {
        this.preco = preco;
    }

    public Fornecedor getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(Fornecedor fornecedor) {
        this.fornecedor = fornecedor;
    }

    public List<Prod_ped> getProduto_pedidos() {
        return produto_pedidos;
    }

    public void setProduto_pedidos(List<Prod_ped> produto_pedidos) {
        this.produto_pedidos = produto_pedidos;
    }

}//CLASS
